Selektorer i CSS
En selektor velger ut HTML-elementer slik at vi kan tilordne egenskaper til elementene.
Eksempler
h1 {
color: blue;
}
.rundKantlinje {
border: 5px solid white;
border-radius: 5px;
}
I CSS koden over er h1
en typeselektor. Alle elementer av typen h1
på nettsiden vil få egenskapen color
satt til verdien blue
.
.rundKantlinje
er en punktselektor (også kalt klasseselektor). Alle HTML elementer med attributten class="rundKantlinje"
vil få egenskapene border
og border-radius
slik som spesifisert i CSS-koden.
Typer selektorer
Vi har mange ulike typer selektorer
Selektor | Forklaring | Eksempel |
---|---|---|
Typeselektor | Velger en type HTML element | h1 |
CSS pseudoselektorer | Velger elementer rundt HTML elementet | h1::before |
CSS pseudoklasser | Velger spesielle elementer, eller når elementer er i visse tilstander | div:hover og a:visited |
Punktselektorer | Velger alle HTML elementer med attributten class="klassenavn" |
h1.spesiell eller .rundKantline |
Hashtagselektor | Velger alle HTML elementer med attributten id="idNavn" . Id-navnet kan kun brukes en gang på nettsiden. |
div#container eller #search |
Attributtselektor | Velger alle HTML elementer som matcher attributten | input[type="range"] eller a[href="https://example.org"] |
Spesifisitet
CSS har et hierarki[1] av stiler. Typeselektorene html
og body
gjelder hele nettsiden (alt som ligger inne i body). Dersom du setter tekstfargen til blå i body med body {color: blue;}
så vil dette gjelde for all tekst på siden. Men dersom du også setter p {color: green;}
så vil all tekst som ligger inne i p
-tagger bli grønt, mens resten av teksten blir blå. Det er fordi p
er en mer spesifikk selektor enn body
.
Pseudoklasser, punktselektorer, hashtagselektorer og attributtselektorer har alle høyere spesifisitet enn typeselektorer.
La oss se på et annet eksempel ↓
h1 { color: green; }
.blueText { color: blue; }
<h1>Denne teksten blir grønn</h1>
<h1 class="blueText">Denne teksten blir blå</h1>
I eksempelet ovenfor blir den første overskriften grønn. I den andre overskriften så vil begge linjene med CSS gjelde for overskriften: typeselektoren sier at teksten skal bli grønn, mens punktselektoren sier at den skal bli blå. Punktselektoren er mer spesifikk, derfor blir teksten blå.
Kombinasjon av selektorer
Selektor | Forklaring |
---|---|
ul li |
velger alle li inni ul |
ol li |
velger alle li inni ol |
ul > li |
velger første li inni ul |
h1 + p |
velger første p ETTER h1 |
h1 ~ p |
velger alle p ETTER h1 |
Hierarki: å rangere noe, over og under hverandre ↩︎